package com.firestone.bean.entity.elasticsearch.dm;

import com.firestone.bean.entity.elasticsearch.nested.WeightJson;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.*;

import java.io.Serializable;
import java.util.List;

/**
 * @author dingjc
 * @Description：TODO(数据工厂DM层dm_科研基金表 Elasticsearch bean)
 *              DM数据工厂ES表不由该系统维护，请将createIndex设为false，避免系统启动时修改了大数据维护表的索引
 * @date 2018年04月17日  下午 8:03
 */
@Document( indexName = "dm_map_research_fund" ,type = "index",createIndex = true)
@Setting(settingPath = "/setting/setting.json")
public class DmMapResearchFund implements Serializable {

    private static final long serialVersionUID = 1l;

    @Id
    private String id;

    /**
     * @Fields SYS_add_time : TODO(添加时间)
     */
    @Field(type = FieldType.Date, format = DateFormat.custom, pattern = "yyyy-MM-dd HH:mm:ss")
    private String SYS_add_time;

    /**
     * @Fields SYS_add_time : TODO(检验时间)
     */
    @Field(type = FieldType.Date, format = DateFormat.custom, pattern = "yyyy-MM-dd HH:mm:ss")
    private String SYS_check_time;

    /**
     * @Fields SYS_add_time : TODO(更改时间)
     */
    @Field(type = FieldType.Date, format = DateFormat.custom, pattern = "yyyy-MM-dd HH:mm:ss")
    private String SYS_dm_update_time;

    /**
     * @Fields abstracts : TODO(摘要)
     */
    @Field(type = FieldType.keyword)
    private String abstracts;

    /**
     * @Fields annotation : TODO(说明)
     */
    @Field(type = FieldType.keyword)
    private String annotation;

    /**
     * @Fields company : TODO(单位名称)
     */
    @Field(type = FieldType.keyword,analyzer = "ik_max_word")
    private String company;

    /**
     * @Fields descriptor : TODO(主题词)
     */
    @Field(type = FieldType.keyword)
    private String descriptor;

    /**
     * @Fields discipline : TODO(学科分类)
     */
    @Field(type = FieldType.keyword)
    private String discipline;

    /**
     * @Fields end_time : TODO(结束时间)
     */
    @Field(type = FieldType.keyword)
    private String end_time;

    /**
     * @Fields funding : TODO(金额)
     */
    @Field(type = FieldType.Double)
    private String funding;

    /**
     * @Fields funding_base : TODO(金额基数)
     */
    @Field(type = FieldType.Double)
    private String funding_base;

    /**
     * @Fields funding_currency : TODO(金钱货币)
     */
    @Field(type = FieldType.keyword)
    private String funding_currency;

    /**
     * @Fields funding_num : TODO(金额数额)
     */
    @Field(type = FieldType.Double)
    private String funding_num;

    /**
     * @Fields grant_number : TODO(批准号/编号)
     */
    @Field(type = FieldType.keyword)
    private String grant_number;

    /**
     * @Fields item : TODO(项目类别)
     */
    @Field(type = FieldType.keyword)
    private String item;

    /**
     * @Fields name : TODO(项目名)
     */
    @Field(type = FieldType.keyword)
    private String name;

    /**
     * @Fields period : TODO(起止时间)
     */
    @Field(type = FieldType.keyword)
    private String period;

    /**
     * @Fields principal : TODO(项目负责人)
     */
    @Field(type = FieldType.keyword)
    private String principal;

    /**
     * @Fields professional_title : TODO(职称头衔)
     */
    @Field(type = FieldType.keyword)
    private String professional_title;

    /**
     * @Fields result : TODO(成果)
     */
    @Field(type = FieldType.keyword)
    private String result;

    /**
     * @Fields result_num : TODO
     */
    @Field(type = FieldType.keyword)
    private String result_num;

    /**
     * @Fields result_participants : TODO
     */
    @Field(type = FieldType.keyword)
    private String result_participants;

    /**
     * @Fields result_title : TODO
     */
    @Field(type = FieldType.keyword)
    private String result_title;

    /**
     * @Fields result_type : TODO
     */
    @Field(type = FieldType.keyword)
    private String result_type;

    /**
     * @Fields result_title : TODO(开始时间)
     */
    @Field(type = FieldType.keyword)
    private String start_time;

    /**
     * weight_json:字段来源
     */
    @Field(type = FieldType.Nested)
    private List<WeightJson> weight_json;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getSYS_add_time() {
        return SYS_add_time;
    }

    public void setSYS_add_time(String SYS_add_time) {
        this.SYS_add_time = SYS_add_time;
    }

    public String getSYS_check_time() {
        return SYS_check_time;
    }

    public void setSYS_check_time(String SYS_check_time) {
        this.SYS_check_time = SYS_check_time;
    }

    public String getSYS_dm_update_time() {
        return SYS_dm_update_time;
    }

    public void setSYS_dm_update_time(String SYS_dm_update_time) {
        this.SYS_dm_update_time = SYS_dm_update_time;
    }

    public String getAbstracts() {
        return abstracts;
    }

    public void setAbstracts(String abstracts) {
        this.abstracts = abstracts;
    }

    public String getAnnotation() {
        return annotation;
    }

    public void setAnnotation(String annotation) {
        this.annotation = annotation;
    }

    public String getCompany() {
        return company;
    }

    public void setCompany(String company) {
        this.company = company;
    }

    public String getDescriptor() {
        return descriptor;
    }

    public void setDescriptor(String descriptor) {
        this.descriptor = descriptor;
    }

    public String getDiscipline() {
        return discipline;
    }

    public void setDiscipline(String discipline) {
        this.discipline = discipline;
    }

    public String getEnd_time() {
        return end_time;
    }

    public void setEnd_time(String end_time) {
        this.end_time = end_time;
    }

    public String getFunding() {
        return funding;
    }

    public void setFunding(String funding) {
        this.funding = funding;
    }

    public String getFunding_base() {
        return funding_base;
    }

    public void setFunding_base(String funding_base) {
        this.funding_base = funding_base;
    }

    public String getFunding_currency() {
        return funding_currency;
    }

    public void setFunding_currency(String funding_currency) {
        this.funding_currency = funding_currency;
    }

    public String getFunding_num() {
        return funding_num;
    }

    public void setFunding_num(String funding_num) {
        this.funding_num = funding_num;
    }

    public String getGrant_number() {
        return grant_number;
    }

    public void setGrant_number(String grant_number) {
        this.grant_number = grant_number;
    }

    public String getItem() {
        return item;
    }

    public void setItem(String item) {
        this.item = item;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getPeriod() {
        return period;
    }

    public void setPeriod(String period) {
        this.period = period;
    }

    public String getPrincipal() {
        return principal;
    }

    public void setPrincipal(String principal) {
        this.principal = principal;
    }

    public String getProfessional_title() {
        return professional_title;
    }

    public void setProfessional_title(String professional_title) {
        this.professional_title = professional_title;
    }

    public String getResult() {
        return result;
    }

    public void setResult(String result) {
        this.result = result;
    }

    public String getResult_num() {
        return result_num;
    }

    public void setResult_num(String result_num) {
        this.result_num = result_num;
    }

    public String getResult_participants() {
        return result_participants;
    }

    public void setResult_participants(String result_participants) {
        this.result_participants = result_participants;
    }

    public String getResult_title() {
        return result_title;
    }

    public void setResult_title(String result_title) {
        this.result_title = result_title;
    }

    public String getResult_type() {
        return result_type;
    }

    public void setResult_type(String result_type) {
        this.result_type = result_type;
    }

    public String getStart_time() {
        return start_time;
    }

    public void setStart_time(String start_time) {
        this.start_time = start_time;
    }

    public List<WeightJson> getWeight_json() {
        return weight_json;
    }

    public void setWeight_json(List<WeightJson> weight_json) {
        this.weight_json = weight_json;
    }
}
